地理空间索引

您所在的位置:网站首页 mongodb 时序数据库索引 地理空间索引

地理空间索引

2024-06-21 04:23| 来源: 网络整理| 查看: 265

地理空间索引

在此页面上

用例开始体验详情分片集合覆盖查询球面查询了解详情

地理空间索引支持对存储为GeoJSON对象或传统坐标对的数据进行查询。您可以使用地理空间索引来提高对地理空间数据的查询性能或运行某些地理空间查询。

MongoDB 提供两种类型的地理空间索引:

2 dsphere 索引,支持解释球体上几何图形的查询。

2 d 索引,支持解释平面上几何图形的查询。

要了解有关地理空间数据和查询操作的更多信息,请参阅地理空间查询。

用例

如果应用程序经常查询包含地理空间数据的字段,则可以创建地理空间索引,提高查询性能。

某些查询操作需要地理空间索引。如果要使用 $near或$nearSphere操作符或$geoNear聚合阶段进行查询,则必须创建地理空间索引。有关详细信息,请参阅地理空间查询运算符和地理空间聚合阶段。

例如,考虑一个subway集合,其中的文档包含location字段,该字段指定城市地铁站的坐标。您经常使用$geoWithin操作符运行查询以返回特定区域内的车站列表。要提高此查询的性能,您可以在location字段上创建地理空间索引。创建索引后,您可以使用$near操作符进行查询,返回附近车站的列表,按从近到远排序。

对经常查询的字段建立索引可以增加覆盖这些查询的机会。覆盖查询是可以完全使用索引来满足的查询,而无需检查任何文档。这样可以优化查询性能。

开始体验

若要创建地理空间索引并运行地理空间查询,请参阅:

创建 2dsphere 索引

查询 2dsphere 索引

创建 2d 索引

查询 2d 索引

详情

本部分介绍有关地理空间索引的详细信息。

分片集合

对集合进行分片时,不能将地理空间索引用作分片键。但是,您可以使用不同字段作为分片键在分片集合上创建地理空间索引。

您可以使用地理空间查询运算符和聚合阶段来查询分片集合上的地理空间数据。

MongoDB 4之前的版本。分片集合不支持0 、 $near和$nearSphere查询。相反,您可以使用$geoNear聚合阶段或geoNear命令。

覆盖查询

地理空间索引无法涵盖查询。

球面查询

使用 2d 索引查询球形数据可能会返回不正确的结果或错误。例如,2d 索引不支持环绕极点的球形查询。

但是,您可以将2dsphere索引用于球面查询和二维查询。对于二维查询, 2dsphere索引会将存储为传统坐标对的数据转换为GeoJSON Point类型。

了解详情

有关地理空间查询操作示例,请参阅地理空间查询示例。



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3